package com.zyl.blog.CogniSphere.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

/**
 * @version v1.0
 * @ProjectName: Personal_Blog_Server
 * @Package: com.zyl.blog.CogniSphere.model
 * @ClassName: SparkHttpRequest
 * @Description:
 * @Author FinalFantasy
 * @Date 2025/8/15-13:35
 */
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class SparkHttpRequest {
    /**
     * 应用ID，从控制台获取
     */
    private String appId;

    /**
     * API密钥，从控制台获取
     */
    private String apiKey;

    /**
     * 领域参数，与WebSocket版本一致
     */
    private String domain;

    /**
     * 模型名称，如"spark-3.5"等
     */
    private String model;

    /**
     * 用户输入的提示词
     */
    private String prompt;

    /**
     * 温度参数，控制生成的随机性，取值范围0~1
     * 值越高越随机，越低越确定
     */
    private Float temperature = 0.7f;

    /**
     * 最大生成token数，控制回答长度
     */
    private Integer maxTokens = 1024;

    /**
     * _top_p参数，用于 nucleus sampling策略
     * 取值范围0~1，与temperature配合使用
     */
    private Float topP = 0.9f;

    /**
     * 响应格式控制，是否以JSON格式返回
     */
    private Boolean responseFormatJson = false;

    /**
     * 是否开启流式返回，HTTP模式下通常设为false
     */
    private Boolean stream = false;
}
